package com.glela.usermoney.mapper;

import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.glela.usermoney.model.UserCommision;

public interface UserCommisionMapper {
	int deleteByPrimaryKey(Long id);

	int insert(UserCommision record);

	int insertSelective(UserCommision record);
	
	int batchInsert(List<UserCommision> list);

	UserCommision selectByPrimaryKey(Long id);
	
	List<UserCommision> selectByOrderObjectIdForCommision(long orderDetailId);
	/**
	 * <dl>
	 * <dt>批量更新分佣结果为已处理1</dt>
	 * <dd>未处理可使用</dd>
	 * </dl>
	 * @param commisionList item.id 分佣明细id
	 * @return int
	 * @author zls
	 */
	int updateResultInId(List<UserCommision> commisionList);
	/**
	 * 获取余额事务(status=0 result=0)
	 * @author gaoweiqi
	 * @date 2017年8月12日 12:44:05
	 */
	UserCommision selectBySourceIDAndBusinessType(@Param("sourceID")Long sourceID,@Param("PointMoneyBusinessType")int PointMoneyBusinessType);

	/**
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(UserCommision record);

	/**
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(UserCommision record);
	
	int updateResultByPrimaryKey(long id);
	
	/**
	 * 查询子订单id分佣用
	 * 
	 * @param userId
	 * @return
	 */
	public List<Integer> selectCommisionOrderInfoIdByUserIdtwo(long userId);

	/**
	 * 查询子订单id （达人订单）
	 * 
	 * @param userId
	 * @return
	 */
	public List<Integer> selectCommisionOrderInfoIdByUserId(@Param("userId")long userId,@Param("page")int page,@Param("pageSize")int pageSize);

	public int selectCommisionOrderInfoIdByUserIdTwo(@Param("userId")long userId);
	
	/**
	 * 查询交易中的订单
	 * 
	 * @param userId
	 * @return
	 */
	public List<Integer> selectCommisionOrderInfoId(long userId);

	/**
	 * 累计获得佣金
	 * 
	 * @param userId
	 * @return
	 */
	public int selectCommisionSumFee(long userId);

	/**
	 * 订单数量
	 * 
	 * @param userId
	 * @return
	 */
	public int selectCommisioncountid(long userId);

	/**
	 * 统计有多少个人有佣金
	 * 
	 * @return
	 */
	public int selectUserNumWhereHasCommision();

	/**
	 * 查出有多少人佣金比你少
	 * 
	 * @param userId
	 * @return
	 */
	public int selectUserNumWhereLessThanYou(@Param("userId") long userId);

	/** MaoZeYao **/
	/**
	 * 修改分佣的状态为禁用
	 * @param id
	 * @return
	 */
	int updateCommisionStatusByOrderObjectId(Long id);
	
	int updateCommisionStatusByOrderDetailId(Long orderDetailId);
	/** MaoZeYao **/

	public int selectCommisionSumFeeBByOrderDetailId(long orderDetailId);
	/**
	 * 获取余额事务(不区分状态)
	 * @author gaoweiqi
	 * @date 2017年9月20日 12:44:05
	 */
	UserCommision selectBySourceIDAndType(@Param("sourceID")Long sourceID,@Param("PointMoneyBusinessType")int PointMoneyBusinessType);
	
}
